package com.zmn.oms.third.youzan.api;

import lombok.Data;

import java.util.List;

/**
 * 类描述：
 *
 * @author lhl
 * @date 2020/05/27 20:54
 */
@Data
public class OrderClue {

    private List<FullOrderInfoList> fullOrderInfoList;

    private Long totalResults;

    @Data
    public static class FullOrderInfoList {
        private FullOrderInfo fullOrderInfo;
    }

    @Data
    public static class FullOrderInfo {

        private AddressInfo addressInfo;

        private List<Order> orders;

        private OrderInfo orderInfo;

        private BuyerInfo buyerInfo;

        private SourceInfo sourceInfo;

        private PayInfo payInfo;

        private ChildInfo childInfo;

        private RemarkInfo remarkInfo;
    }

    @Data
    public static class AddressInfo {
        private String deliveryEndTime;
        private String deliveryStartTime;
        private String deliveryProvince;
        private String deliveryCity;
        private String deliveryPostalCode;
        private String receiverTel;
        private String deliveryDistrict;
        private String addressExtra;
        private String selfFetchInfo;
        private String deliveryAddress;
        private String receiverName;
    }
    @Data
    public static class Order {
        private String picPath;
        private String price;
        private String taxTotal;
        private Long skuId;
        private String alias;
        private String subOrderNo;
        private String freight;
        private String fenxiaoTaxTotal;
        private String outerSkuId;
        private String customsCode;
        private String preSaleType;
        private Long itemType;
        private Long num;
        private String fenxiaoDiscountPrice;
        private String goodsUrl;
        private String fenxiaoPrice;
        private String title;
        private String fenxiaoDiscount;
        private String fenxiaoFreight;
        private String isPreSale;
        private String weight;
        private String crossBorderTradeMode;
        private List<String> skuPropertiesName;
        private String oid;
        private String payment;
        private String discount;
        private String isCrossBorder;
        private String pointsPrice;
        private Boolean isPresent;
        private String skuUniqueCode;
        private String outerItemId;
        private Long itemId;
        private String discountPrice;
        private String buyerMessages;
        private String fenxiaoPayment;
        private String totalFee;
    }

    @Data
    public static class OrderInfo {
        private OrderTags orderTags;
        private Boolean isRetailOrder;
        private Long payType;
        private String updateTime;
        private String offlineId;
        private String consignTime;
        private String tid;
        private OrderExtra orderExtra;
        private String created;
        private String status;
        private Long rootKdtId;
        private Long teamType;
        private String expiredTime;
        private Long refundState;
        private Long expressType;
        private Long type;
        private String payTime;
        private String payTypeStr;
        private Long closeType;
        private Long nodeKdtId;
        private String successTime;
        private String confirmTime;
        private String orderUrl;
        private String statusStr;
    }

    @Data
    public static class BuyerInfo {
        private String fans_nickname;
        private Long fansId;
        private Long fansType;
        private String buyerPhone;
        private String outerUserId;
        private String yzOpenId;
    }

    @Data
    public static class SourceInfo {
        private String bookKey;
        private String orderMark;
        private Source source;
        private Boolean isOfflineOrder;
        private String bizSource;
    }

    @Data
    public static class PayInfo {
        private String payment;
        private String postFee;
        private List<PhasePayment> phasePayments;
        private List<String> transaction;
        private List<String> outerTransactions;
        private String totalFee;
    }

    @Data
    public static class ChildInfo {
        private List<ChildOrder> childOrders;
        private String giftNo;
        private String giftSign;
    }

    @Data
    public static class RemarkInfo {
        private String buyerMessage;
        private Long star;
        private String tradeMemo;
    }

    @Data
    public static class OrderTags {
        private Boolean isFenxiaoOrder;
        private Boolean isPayed;
        private Boolean isOfflineOrder;
        private Boolean isDownPaymentPre;
        private Boolean isPreorder;
        private Boolean isMember;
        private Boolean isSecuredTransactions;
        private Boolean isRefund;
        private Boolean isVirtual;
        private Boolean isPostageFree;
        private Boolean isSettle;
        private Boolean isFeedback;
        private Boolean isPurchase_order;
        private Boolean isMultiStore;
    }

    @Data
    public static class OrderExtra {
        private String createDeviceId;
        private String isSubOrder;
        private String fxOuterTransactionNo;
        private String cashierId;
        private String invoiceTitle;
        private String idCardNumber;
        private String isMember;
        private String fxOrderNo;
        private String promotionCombineId;
        private String deptId;
        private String idCardName;
        private String marketingChannel;
        private Long tmCash;
        private String isPointsOrder;
        private String cashierName;
        private String fxInnerTransactionNo;
        private String parentOrderNo;
        private String settleTime;
        private String isFromCart;
        private String purchaseOrderNo;
        private String buyerName;
        private String payUmpDetail;
        private String isParentOrder;
        private String ordersCombineId;
        private Long cash;
        private String kdtDimensionCombineId;
        private Long tCash;
        private String fxKdtId;
    }

    @Data
    public static class Source {
        private Boolean isOfflineOrder;
        private String bizSource;
    }

    @Data
    public static class PhasePayment {
        private String payEndTime;
        private String outerTransactionNo;
        private Long phase;
        private String realPrice;
        private String payStartTime;
        private String innerTransactionNo;
    }

    @Data
    public static class ChildOrder {
        private String tid;
        private String addressDetail;
        private String county;
        private String userTel;
        private String orderState;
        private String city;
        private String userName;
        private String province;
    }
}
